// 服务器入口文件
// 1.创建koa对象
const Koa=require('koa')
const app=new Koa()
// 2.编写响应函数
// 绑定第一层中间件，第一层中间件为服务器耗时中间件(请求是从第一层中间件起，所有请求完成后，依据洋葱模型的执行顺序，又会回到第一层中间件)
const respDurationMiddleware=require('./middleware/koa_response_duration')
app.use(respDurationMiddleware)
// 绑定第二层中间件
const respHeaderMiddleware=require('./middleware/koa_response_header')
app.use(respHeaderMiddleware)
// 绑定第三层中间件
const respDataMiddleware=require('./middleware/koa_response_data')
app.use(respDataMiddleware)
// 3.绑定端口号
app.listen(8888)


/*
    koa2在项目中被弃用的原因，之前是前端拉取后端数据，如果后端数据发生改变，前端数据不能保证实时更新，所以改用WebSocket由后端主动向前端推送数据的连接
 */
// WebSocket改造后端

const webSocketService=require('./service/web_socket_service')
// 开启服务端监听，监听客户端连接
// 当某个客户端连接后，就会对客户端发送数据进行监听
webSocketService.listen()